<?php
/**
 * 角色（Role）模型
 * 
 * ============================================================================
 * 版权所有: (c) 2009-2011，<UEShop Inc>，并保留所有权利。
 * 网站地址: http://www.ueshop.cn
 * ----------------------------------------------------------------------------
 * 这不是一个自由软件！您只能在不用于商业目的的前提下对程序代码进行修改和使用；
 * 不允许对程序代码以任何形式任何目的的再发布。
 * ============================================================================
 * @author cmpan
 * @copyright   Copyright (c) 2009-2011 UEShop Inc. (http://www.ueshop.cn)
 * @license     http://www.ueshop.cn/1_0.txt
 */
class RoleModel extends UE_Model {
	public $table  = 'ue_role';
	public $key    = 'role_id';
	public $id     = '';
	
	/**
	 * 添加角色
	 *
	 * @param array $role
	 * @return bool
	 */
	public function add($role) {
		$role['role_name'] = trim($role['role_name']);
		
		if (empty($role['role_name']) || empty($role['role_type'])) {
			$this->setErr(UE_Lang::get('missField'));	
			return false;	
		}
		
		$roleId = parent::add($role);
		if ($roleId) {
			$sql = "UPDATE {$this->table} SET role_order=role_id WHERE role_id='$roleId'";
			$this->_db()->query($sql);
			UE_Cache::createCache()->clear('query');
			return $roleId;
		}
		
		return false;
	}
		
	/**
	 * 获取所有角色
	 *
	 * @param string $type       角色类型 admin/member/special
	 * @param bool $getDisabled  是否获取已禁用角色信息
	 * @return array
	 */
	public function getRoles($type = '', $getDisabled = true) {
		$sql = "SELECT * FROM ue_role WHERE true ";
		if ($type && in_array($type, array('member', 'admin', 'special'))) {
			$sql .= " AND role_type = '$type'";
		}
		
		if (!$getDisabled) {
			$sql .= " AND role_disabled = 0";
		}
		
		$sql .= " ORDER BY role_order ASC";
		return $this->_db()->getAll($sql, 1);
	}

}
